import Vue from 'vue'
import Vuex from 'vuex'

// 用户模块
import user from './module/user'
// 文件列表模块
import fileList from './module/fileList'
// 左侧菜单模块
import sideMenu from './module/sideMenu'
// 公共模块
import common from './module/common'
// 拖拽上传文件模块
import uploadFile from './module/uploadFile'
// 文件展示模式选择列表时，所有可供选择的表格列名
import { allColumnList } from '@/libs/map.js'

Vue.use(Vuex)

export default new Vuex.Store({
	getters: {
		// 表格显示列
		selectedColumnList: (state) =>
			state.fileList.selectedColumnList === null
				? allColumnList
				: state.fileList.selectedColumnList.split(','),
		// 文件查看模式
		fileModel: (state) =>
			state.fileList.fileModel === null ? 0 : Number(state.fileList.fileModel),
		// 剩余存储空间
		remainderStorageValue: (state) =>
			state.sideMenu.totalStorageValue - state.sideMenu.storageValue
	},
	modules: {
		user,
		fileList,
		sideMenu,
		common,
		uploadFile
	}
})
